首先來個永豐官方的文件圖片作開場吧!
(圖一:由商戶->永豐正向發動的所需參數)
而我們今天要來談的是,要如何取得Nonce值,並且利用它來產生安全簽章Sign,以上準備動作都好了才能順利實踐“要求API服務”的動作。雖然看似麻蠻煩的,但這樣是為了確保整個流程的安全性。也許這個動態產生的Nonce值(文件上說是包含時間戳記的資訊?)可以拿來作為追蹤或其他用途,不過這也只是個人臆測而已也還沒有時間多做研究...希望有其他大神能幫忙解惑
從圖一來看,可以很清楚的知道:
廢話不多說,讓我們試著敲敲看API來取得Nonce吧,這次是採用永豐提供的這組Url:(https://apisbx.sinopac.com/funBIZ/QPay.WebAPI/api/Nonce)
取得後的結果:
string nonce = "NjM2NjA0MzI4ODIyODguMzo3NzI0ZDg4ZmI5Nzc2YzQ1MTNhYzg2MTk3NDBlYTRhNGU0N2IxM2Q2M2JkMTIwOGU5YzZhMGFmNGY5MjA5YzVm";
再來就是處理四組字串(A1/A2;B1/B2),利用兩兩作XOR計算出的結果相加,算完之後要將英文轉為大寫喔!
沒問題的話,算出來應該會是像這樣長度為32的字串
string HashID = "17D8E6558DC60E702A6B57E1B9B7060D";
至於要怎麼算出 str1 XOR str2
,可以去參考這篇文章:
XOR 的運算性質及應用
接下來,預計會在明天的部分一起來談SHA256以及AES CBC的部分!
See you!